Information stored in computers must be processed and presented in a form easily recognizable by the users of the information. Information may be organized in a structured database to facilitate access to the information, however, databases are inherently difficult to manage and often require a number of programmers to write customized programs in the native database language for presenting information to the users of the database. Often, such programs are specially designed for a particular user and require a programmer with expertise in the particular database language.
Mid-range databases, such as those found on client/server computer systems, present all of the management problems found in the larger databases, however, the users of such systems generally cannot devote a full time programmer to managing the database. Database users require different programs to provide recognizable outputs for various users of the database. For example a manager requires a different format of information than a marketeer does. A manager monitors how each of her employees perform, however, a marketeer may be more interested in how a product is selling. The manager also uses different terminology than the marketeer and so the information they require is vastly different, even though it may be stored in a common database.
Another difficulty, is that users may require a different output from the database, even if they have a common job function and work in the same department. For example, in an international corporation some managers may understand only English, but others will understand only Italian and require translation of the headings of the different database outputs. Therefore, even though both the English managers and the Italian managers require the same type of information, the language difference presents another complexity requiring more programming or another program entirely.
The tasks of maintaining the database are generally delegated to system administrators who are unfamiliar with the particular database language native to the system. If the system administrator is unfamiliar with the native database language, then the cost of generating meaningful outputs for all of the users of the database is increased, since either the system administrator must learn the native database language or hire a programmer to customize the outputs for each user. Other costs include programming and maintenance such as joining tables, result calculations, and selecting subsets of the data for specific applications. Even if the system administrator is familiar with the native database language, the task of writing new database programs is time consuming and inefficient, since minor changes in the database require constant reprogramming and maintenance as the needs of the users change over time.
Yet another problem is restricting information to specific users so that sensitive or confidential information is not freely accessible to every user of the database. This raises the same difficulties in restricting access to certain users as mentioned above for providing readable outputs, since a new program would have to be generated each time an individual user's access is restricted.
Therefore, there is a need in the art for a client/server system which is easily programmable for generating easily recognizable outputs from a database. There is also a need for an organized system of customizable views for the end users of the database. There is yet another need for a system which reduces the programming load on the system administrator of the system and is easily programmable independent of the native database language. Finally, there is a need for a client/server system which restricts database access to certain users.